
/*
 * Desenvolvimento para WEB
 * 
 * NOME: Vitor Augusto Graciani           RA: 345270
 * NOME: Felipe Petruz Brina              RA: 345083
 * NOME: Diego Zamboni Latance            RA: 344990
 * NOME: Rafael Claudio Domene            RA: 345040
 * NOME: Vinicius Rodrigues de Campos     RA: 345350
 * 
 */


package model;

import auxiliar.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.ArrayList;



public class ConsultaTipoDAO {
    
    private Connection conn;

    public ConsultaTipoDAO() throws DAOException {
        try {
            this.conn = ConnectionFactory.getConnection();

        } catch (Exception e) {
            throw new DAOException("Erro: " + ":\n" + e.getMessage());
        }
    }
    
    //Cadastro do tipo no BD.
    public void cadastroTipo(ConsultaTipoBEAN cadTipo) throws DAOException {

        PreparedStatement ps = null;
        Connection conn = null;
        if (cadTipo == null) {
            throw new DAOException("Tipo nao pode ser vazia");
        }
        try {

            //Atributos usados na String SQL para cadastro
            String tipoCadastro = cadTipo.getTipo();
            String catCadastro = cadTipo.getCategoria();

            String SQL = "EXECUTE insereTipo '"+tipoCadastro+"', '"+catCadastro+"'";//Acrescentar SQL *************************************************************
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.executeUpdate();
        } catch (SQLException sqle) {
            throw new DAOException("Erros ao inserir dados: ");
        } finally {
            ConnectionFactory.closeConnection(conn, ps);
        }
    }
    
    // consulta tipo no banco
    public ConsultaTipoBEAN consultaTipo(String tipo) throws DAOException {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;
        ConsultaTipoBEAN novo = null;
        try {

            //String da consulta = tipo
            String SQL = "EXECUTE consultaTipo '"+tipo+"'"; // falta por a string sql *****************************************************
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            rs = ps.executeQuery();
            while (rs.next()) {
                String Tipo = rs.getObject("type").toString();
                int tid = Integer.parseInt(rs.getObject("tid").toString());
                novo = new ConsultaTipoBEAN(Tipo, tid);
            }
            return novo;
        } catch (SQLException sqle) {
            throw new DAOException(sqle);
        } finally {
            ConnectionFactory.closeConnection(conn, ps, rs);
        }
    }

    
    public void alteraTipo(ConsultaTipoBEAN alteraTipo) throws DAOException {

        PreparedStatement ps = null;
        Connection conn = null;
        if (alteraTipo == null) {
            throw new DAOException("Entidade nao pode ser vazia");
        }
        try {

            //Atributos usados na String SQL para alteracao
            String tipo = alteraTipo.getTipo();
            int tid = alteraTipo.getTid();

            String SQL = "";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.executeUpdate();
        } catch (SQLException sqle) {
            throw new DAOException("Erros ao inserir dados: " + sqle);
        } finally {
            ConnectionFactory.closeConnection(conn, ps);
        }
    }

    public void removeTipo(ConsultaTipoBEAN removeTipo) throws DAOException {

        PreparedStatement ps = null;
        Connection conn = null;
        if (removeTipo == null) {
            throw new DAOException("Tipo nao pode ser vazio");
        }
        try {

            //Atributos usados na String SQL para remocao
            String tipo = removeTipo.getTipo();
            int tid = removeTipo.getTid();

            String SQL = "";//Acrescentar SQL DELETE FROM.... ********************************************************
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.executeUpdate();
        } catch (SQLException sqle) {
            throw new DAOException("Erros ao inserir dados: " + sqle);
        } finally {
            ConnectionFactory.closeConnection(conn, ps);
        }
    }
    
}
